package top.wutunan;

import sun.misc.ProxyGenerator;

import java.io.File;
import java.io.FileOutputStream;
import java.net.URL;

/**
 * @Description
 * @Author wutunan
 * @Date 2024/5/5
 */
public class Main01 {


    public static void main(String[] args) throws Exception {

        /**
         *         Object proxyInstance = Proxy.newProxyInstance(person.getClass().getClassLoader(),
         *                 person.getClass().getInterfaces(),
         *                 new Handler(person));
         *
         *
         *                 proxyInstance 产生代理对象
         */
        URL resource = Main01.class.getClass().getResource("/");
        System.out.println(resource);

        // JDk产生的字节码--class文件
        // 参数一：直接码类名
        // 代理对象的源码
        byte[] bts = ProxyGenerator.generateProxyClass("$Proxy0", new Class[]{Person.class});
        // 字节码文件输出
        // 在target目录下产生class文件
        File file = new File(resource.getPath(), "$Proxy0.class");
        if (!file.exists()) {
            file.createNewFile();
        }
        FileOutputStream fos = new FileOutputStream(file);
        fos.write(bts);
        fos.flush();
        fos.close();
    }

}
